package com.google.code.jtasks.client.ui;

import com.google.code.jtasks.client.exceptions.TerminateException;

/**
 * Представляет собой команду, то есть осмысленное действие, которое может захотеть выполнить пользователь.
 */
public interface Command {
    /**
     * @return краткое название команды
     */
    String name();

    /**
     * @return описание команды
     */
    String description();

    /**
     * Запускает команду на выполнение.
     *
     * @throws TerminateException если команда считает, что нужно завершить всю программу
     */
    void execute() throws TerminateException;
}
